Namespace("sketch.framework");

(function(fwk) {
    fwk.Shadow = klass(fwk.ContextModifier, (function() {
        return {
            _constructor:function(offsetX, offsetY, color, blur) {
                offsetX = offsetX || 0;
                offsetY = offsetY || 0;
                blur = blur || 0;
                color = color || 0;
                this.createProperty("offsetX", "Offset X", offsetX);
                this.createProperty("offsetY", "Offset Y", offsetY);
                this.createProperty("blur", "Blur", blur);
                this.createProperty("color", "Color", color);
            },
            apply:function(context, callback) {
                context.save();
                context.shadowOffsetX = this.offsetX();
                context.shadowOffsetY = this.offsetY();
                context.shadowBlur = this.blur();
                context.shadowColor = this.color();
                callback(context);
                context.restore();
            }
        };
    })());
})(sketch.framework);